<?php
Yii::import('application.core.logica.google.Auxiliar_api');
class NuevoUsuario{

	private $nro_prox_usuario;
 
//_________________CREAR NUEVO USUARIO___________________

  	public function __construct($nombre_usuario, $apellido_usuario, $fecha_nacimiento, $dni_usuario, $direccion_usuario){
	    
  		$conexion=Yii::app()->db; 
	    // Check connection
	    if (mysqli_connect_errno()) {
	    	echo "Failed to connect to MySQL: " . mysqli_connect_error();
	    } else{
			if($this->NoExisteDNI($conexion,$dni_usuario)){
				$clave=Yii::app()->securityManager->getEncryptionKey();
				$clase=new Auxiliar_api();
				$coordenadas=$clase->trans_a_coordenadas($direccion_usuario);
				$this->generar_numero_usuario($conexion); //genera numero para el usuario
				$consulta="insert into usuarios (nro_usuario, fechaNacimiento, nombre, apellido, dni, direccion,coordenadas)
				Values('".$this->nro_prox_usuario."',STR_TO_DATE(REPLACE('".$fecha_nacimiento."','/','.') ,GET_FORMAT(date,'EUR')),'".$nombre_usuario."','".$apellido_usuario."', HEX(AES_ENCRYPT('$dni_usuario','".$clave."')) ,'".$direccion_usuario."','".$coordenadas."')";
				$resultado=$conexion->createCommand($consulta)->execute();//
			}
			else{
				return false;
			}
		}
	  }

	public function get_nro_usuario(){
		return $this->nro_prox_usuario;
	}

//________METODOS PRIVADOS__________ 

	private function generar_numero_usuario($conexion){
		
		$datonumero=$conexion->createCommand("SELECT MAX(nro_usuario) as nro_usuario FROM usuarios");//consulta por el numero del ultimo usuario
		$files=$datonumero->query();
		foreach($files as $file){
			$this->nro_prox_usuario =$file['nro_usuario']+1;
		}
	  	
	  }
	private function NoExisteDNI($con,$dni){
		$clave=Yii::app()->securityManager->getEncryptionKey();
		$cantidad=$con->createCommand("SELECT count(*) as cantidad FROM usuarios WHERE dni=HEX(AES_ENCRYPT('$dni','".$clave."'))");
		$datos=$cantidad->query();
		foreach($datos as $dato){
			return ($dato['cantidad']==0);
		}
		
	}
}
?>